package com.mall.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {

    @Bean
    public CorsFilter corsFilter() {
        // 1. 配置跨域信息
        CorsConfiguration config = new CorsConfiguration();
        // 允许前端的源（你的前端地址：http://localhost:18080）
        config.addAllowedOrigin("http://localhost:18080");
        // 允许的请求方法（POST/GET等，*表示所有）
        config.addAllowedMethod("*");
        // 允许的请求头（*表示所有）
        config.addAllowedHeader("*");
        // 允许携带Cookie（如果需要登录态，必须配置）
        config.setAllowCredentials(true);
        // 预检请求的有效期（避免频繁发送预检请求，单位：秒）
        config.setMaxAge(3600L);

        // 2. 配置哪些接口需要跨域（/** 表示所有接口）
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);

        // 3. 返回跨域过滤器
        return new CorsFilter(source);
    }
}
